Rapid advances in computer and communication technologies rely on properly functioning and increasingly complex software applications. As a result, numerous efforts in software engineering have attempted to find ways to comprehensively test applications under development. As test design, test generation, and test execution contribute to a large percentage of overall project cost for a new application, improvements in software testing will provide significant benefits to computer application development.